By way of background, Universal Serial Bus (USB) standards, or specifications, endeavor to provide a “universal” plug type for all connections from USB peripherals, such as keyboards, monitors, printers and input devices, e.g., a mouse or a joystick, to host computers, such as PCs, laptops, etc. Virtually every category of PC peripheral is using USB for some products. For illustrative purposes, an exemplary USB plug (male connector) design 30 for a USB peripheral is shown in FIG. 1A and exemplary USB port (female connector) design 40 for the USB standard is shown in FIG. 1B.
Generally speaking, current operating systems (OSs) all support USB, whereas OSs that are no longer supported by their makers may or may not support USB without modifications. Many devices are able to obtain all of the software support they require to operate from the OS, but there are some peripherals that may need extra drivers specialized for that particular peripheral. OSs that support USB know how to determine if any other software is needed and they help the user load any needed software so the device works correctly. USB is currently also a feature of virtually every new notebook computer, gaming systems, and some other mobile computing and entertainment devices as well. One advantage of USB is that it allows portable computer users to easily share peripherals.
USB carries data at the rate of 12 megabits per second, which is sufficient for “medium to low-speed” peripherals. This broad category includes telephones, digital cameras, modems, keyboards, mice, digital joysticks, some CD-ROM drives, tape and floppy drives, digital scanners and specialty printers. USB's data rate also accommodates a whole new generation of peripherals, including MPEG-2 video-base products, data gloves and digitizers. Computer-telephony integration is expected to be a big growth area for PCs, and USB can provide an interface for Integrated Services Digital Network (ISDN) and digital private branch exchanges (PBXs).
High speed USB products have a design data rate of 480 Mb/s. Full speed USB devices signal at 12 Mb/s, while low speed devices use a 1.5 Mb/s subchannel. Comparing USB, for instance, to IEEE-1394 (“1394”), while the two serial buses seem similar, they fulfill different market and cost needs. 1394 has the potential to move more data in a given amount of time, but is considerably more expensive than USB due to its more complex protocol and signaling rate. Applications that are best suited for 1394 are high quality consumer or professional video streams and other high bandwidth entertainment applications, and tend to be for higher end consumer devices. USB tends to be more appropriate for high and low bandwidth computer peripherals, such as mass storage, video, audio, scanners, printers, keyboards, joysticks, etc., i.e., just about any peripheral.
For USB host devices, such as PCs, laptops, gaming systems, and other multimedia host devices, USB is a built-in feature of most host chip sets, as well as operating system and other system software. By eliminating add-in cards and separate power supplies, USB helps make host peripheral devices more affordable than they otherwise would be. In addition, USB's “hot-swapping” capabilities allow business and other users to easily attach and detach peripherals. Device sharing can reduce the cost of ownership of such equipment.
Technically, up to 127 individual USB peripherals can be connected at one time, though due to the fact that some devices reserve USB bandwidth to guarantee their successful operation, the practical maximum of devices is less than the theoretical maximum. However, PCI USB add-in cards can provide an independent USB bus to which even more peripherals can be connected, if need be.
Generally, a cable connects the device to the USB host. In practice, the USB specification limits the length of a cable between full speed devices to 5 meters, or a little under 16 feet 5 inches. For a low speed device, the limit is 3 meters, or about 9 feet, 10 inches. A cable longer than 3 or 5 meters cannot be used because USB's electrical design does not allow it. When USB was designed, a decision was made to handle the propagation of electromagnetic fields on USB data lines in a way that limited the maximum length of a USB cable to something in the range of 4 meters. This method has a number of advantages and since USB is intended for a desktop environment, the range limitations were deemed acceptable in accordance with the limits of transmission line theory.
As a side note, one can achieve lengths longer than 5 meters with USB hubs. With a maximum of 5 hubs connected with 5 meter cables, and a 5 meter cable going to a full speed peripheral device, 30 meters of cable are possible. With a low speed device, a range up to 27 meters can be achieved, depending on the length of the cable to the low speed device.
USB can also be used to connect two or more machines, though it is impractical for more than a trivial number of machines. If you need to connect just a few machines, for instance, USB bridges and a hub or two will work to achieve the goal. USB was not designed to be a local area network (LAN), however, and there are certain safety hazards associated with trying to use USB with large numbers of PCs. There is also a large performance penalty compared to a real LAN.
As mentioned, the hi-speed data transfer rate for USB is 480 Mb/s. There is, however, wide variation in edge rates. With typical line loads, full speed devices usually fall in the 12-25 ns range, and low-speed devices typically range 110-225 ns. For instance, if a 25 ns rise or fall time is used, and it is driven into a 50 pF load, then this would be outside of the USB specifications, i.e., outside the requirements of the USB specifications. If a 25 ns rise or fall time is used, and it is driven into a 1000 pF load, however, then the requirements of the USB specification are met. Thus, the capacitance characteristics of the load can make a significant difference when operating under real conditions. Furthermore, typical or characteristic impedances that should be used when laying out a USB device's traces include 30 ohms to ground and 90 ohms differential between the USB data lines.
USB termination requirements are quite lenient. For example, a 0 to 3.6 V signal input into a 51.75 ohm line with a 28 ohm source termination swings between 4.6 and −1.0 V. In practice, most USB devices are under terminated, and sometimes incorrectly. Using 44 ohms for termination tends to bring termination well within a standard ±15% impedance tolerance, although 44 ohms may not be enough to perfectly terminate the device when it is connected to an ideal cable. Most modern processes are well controlled, so the internal impedance of USB drivers is quite consistent from wafer to wafer, however pre-fixed. It is also wise to characterize the drivers' impedance range and perform sampling of production parts.
The USB cable length limitation was imposed by a cable delay spec of 26 ns to allow for reflections to settle at the transmitter before the next bit is to be sent. Since USB uses source termination and voltage-mode drivers, this is done because otherwise reflections can pile up and blow the driver. This does not mean the line voltage has fully settled by the end of the bit, with the worst case being under termination, however, there has been enough damping by the end of the bit that the reflection amplitude reduces to manageable levels. Similarly, the low speed cable length was limited to 18 ns to keep transmission line effects from impacting low speed signals.
With respect to throughput and bandwidth, USB's actual throughput is a function of many variables. Typically, the most important variables include the target device's ability to source or sink data, the bandwidth consumption of other devices on the bus, and the efficiency of the host's USB software stack. In some cases, peripheral component interconnect (PCI) latencies and processor loading can also be critical.
Assuming only the target endpoint consumes a significant amount of bus bandwidth, and both the target and the host are able to source or sink data as fast as USB can move it, the maximum attainable bandwidth is a function of the transfer type and signaling rate. In practice, most hosts can reach the maximum isochronous and interrupt bandwidths with a single target endpoint. With bulk transfers, typical transfer rates are around 900 kb/s to a single endpoint, increasing to near ideal transfer rates with multiple endpoints.
For devices like most low speed devices (keyboards, mice), latency tolerant bulk devices (printers, scanners, still cameras), or latency intolerant devices with low bandwidth (POTS modems, speakers) bandwidth allocation isn't usually of much concern because the device can tolerate data rates that are a small part of USB's total bandwidth. For higher data rate devices, e.g., video cameras, xDSL modems, etc., the amount of bandwidth available can be critical.
A well-designed peripheral handles a shortage of bandwidth gracefully. For instance, many USB cameras provide several different interfaces, each using a different amount of isochronous bandwidth, and allow the user to select which interface is used. Thus, the user can choose whatever tradeoff between available bus bandwidth and frame rate best suits their needs. Another example is a bulk device that requires a certain number of packets per frame to work correctly. An application could monitor the data transfer rate, notify the user if the data rate became too low, and suggest ways to bring it back up.
As a general rule of thumb, a device should be able to operate with as little as 30 to 40% of the bus's total bandwidth. This allows two relatively high bandwidth devices to work together (such as a DSL modem and video camera in a teleconferencing setup) while still leaving bandwidth available for must-have devices like keyboards and mice.
Having set forth exemplary background concerning the operation of USB devices with a USB host, an exemplary prior art system is illustrated in FIG. 1C. As shown, an exemplary USB peripheral 50 is connected to a USB host 50 via USB cable 70 of peripheral 50 having a male USB connector plug 30 inserted into a female USB connector port 40 of host 50. USB host includes a host USB transmit and receive component 55 that is capable of receiving, interpreting and transmitting USB messages back and forth between host 50 and peripheral 60. Similarly, peripheral 60 includes a peripheral USB transmit and receive component 65 that is capable of receiving, interpreting and transmitting USB messages back and forth between host 50 and peripheral 60. Transmit and Receive component 65 of peripheral 60 is typically implemented on chip of a larger printed circuit board assembly 80 of peripheral 60.
A problem with designing USB peripherals today, however, is that the USB signal rise and fall times of the peripheral must be matched with the characteristics and length of the cable 70 to be used with peripheral 60 and the load to be manifested by the peripheral when placed across the connection. One problem is that if these characteristics are not matched properly, electromagnetic interference (EMI) can significantly impact the performance of the signaling on the USB connection. For instance, harmonics of signals can propagate through a messaging sequence and interfere with the quality of the signal being processed, introducing potential problems with interpretation of the signal. For instance, with a current joystick product, moving from mere 3 meters to a 5 meter cable causes communications to become too slow from the device, and thus too slow for processing, to make the communications useful.
Traditionally, to make an initial match, designers of USB peripherals have had to spend unnecessary cycles manually tweaking and matching the load and cable characteristics of the peripheral in order to fall within the appropriate rise and fall times to ensure the signaling reliability characteristics mandated for USB connections. What is meant by a signal “rise time” and “fall time” is illustrated in exemplary fashion for the hypothetical signal of FIG. 1D. As the signal rises to maximum voltage (logical 1), a time is associated with that rise termed the “rise time.” As the signal falls to minimum voltage (logical 0), a time is associated with that fall termed the “fall time.” The starting points and end points for rise and fall times are selected according to different points and mathematical formula, since signals tend to asymptotically reach maximums and minimums, and thus, no one definition of rise time or fall time makes sense for all cases. For instance, half-power points, or ¼ voltage points, or 10% may be selected as starting and end points, however, the basic concept remains the same: however defined, the rise time is the time it takes a signal to rise from a beginning voltage (usually logical 0) to an ending voltage (usually logical 1) and the fall time is the time it takes a signal to fall from a starting voltage (usually logical 1) to an ending voltage (usually logical 0). Thus, it would be desirable to build in a way to control, or dynamically change, the rise and fall times of USB signals for USB peripheral devices to overcome the problems presently associated with fixed, or unchangeable, rise and fall times hardwired into present USB peripheral devices.